home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / cris / include / asm / etraxi2c.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  980 b   |  37 lines

  1. /* $Id: etraxi2c.h,v 1.1 2001/01/18 15:49:57 bjornw Exp $ */
  2.  
  3. #ifndef _LINUX_ETRAXI2C_H
  4. #define _LINUX_ETRAXI2C_H
  5.  
  6. /* etraxi2c _IOC_TYPE, bits 8 to 15 in ioctl cmd */
  7.  
  8. #define ETRAXI2C_IOCTYPE 44
  9.  
  10. /* supported ioctl _IOC_NR's */
  11.  
  12. /* in write operations, the argument contains both i2c
  13.  * slave, register and value.
  14.  */
  15.  
  16. #define I2C_WRITEARG(slave, reg, value) (((slave) << 16) | ((reg) << 8) | (value))
  17. #define I2C_READARG(slave, reg) (((slave) << 16) | ((reg) << 8))
  18.  
  19. #define I2C_ARGSLAVE(arg) ((arg) >> 16)
  20. #define I2C_ARGREG(arg) (((arg) >> 8) & 0xff)
  21. #define I2C_ARGVALUE(arg) ((arg) & 0xff)
  22.  
  23. #define I2C_WRITEREG 0x1   /* write to an i2c register */
  24. #define I2C_READREG  0x2   /* read from an i2c register */
  25.  
  26. /*
  27. EXAMPLE usage:
  28.  
  29.     i2c_arg = I2C_WRITEARG(STA013_WRITE_ADDR, reg, val);
  30.     ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_WRITEREG), i2c_arg);
  31.  
  32.     i2c_arg = I2C_READARG(STA013_READ_ADDR, reg);
  33.     val = ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_READREG), i2c_arg);
  34.  
  35. */
  36. #endif
  37.